package com.wicket.okrbff.biz.service.dto.common;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import javax.validation.constraints.NotNull;
import lombok.Data;
import java.util.Objects;
    
    
    /**
     * @desc BffIndexViewPointDto
     * @使用场景
     */
    @Data
    public class BffIndexViewPointDto  implements Serializable {
      
    /**
     * 被评对象目标周期ID 
     */
    @ApiModelProperty("被评对象目标周期ID")
    private String	 evaObjTargetCycleId;

    /**
     * 被评对象内容表主键ID 
     */
    @ApiModelProperty("被评对象内容表主键ID")
    private String	 evaObjEntityId;

    /**
     * 被评对象内容表类型编码 OMS_TARGET_CYCLE:目标周期表 OMS_EVALUATION_OBJECT_TARGET_CYCLE:被评对象目标周期表 OMS_TARGET:目标表 OMS_TARGET_CATEGORY:目标分类表 OMS_TARGET_OBJECTIVE:指标表 OMS_TASK:任务表 OMS_ORG_INDUCTION_RECORD:就职记录表 OMS_FRAMEWORK_ORIGINAL_ROLE_MEMBER:身份人员表 OMS_ORG_DEPT:部门表 OMS_BASE_HOST:宿主表 OMS_FRAMEWORK_SPACE:空间表 OMS_TSPE_CYCLE_STAGE_DATA:周期阶段资料记录 OMS_EVALUATION_TEMPLATE:评价模板 OMS_EVALUATION_PORTRAIT:评价画像表 OMS_ORG_POSITION:职务表 OMS_VIRTUAL_ORG_MEMBER:虚拟组织成员表 OMS_PLANNING:规划资料表 OMS_FRAMEWORK_USERS:个人账号表
     */
    @ApiModelProperty("被评对象内容表类型编码")
    private String	 evaObjTableTypeCode;

    /**
     * 被评对象类型编码 EVA_PORTRAIT:评价画像 EVA_OBJECT:评价对象 FLEVEL_OBJ_TASK_DUTY_DEPT:一级部门目标任务责任部门 OKR_SUBJECT_DEPT:OKR责任主体部门 OKR_SUBJECT_PERSONAL:OKR责任主体个人
     */
    @ApiModelProperty("被评对象类型编码")
    private String	 evaObjTypeCode;

    /**
     * 树类型编码 PLAN_TREE:规划树 EVALUATION_TREE:评价树 DEP_OBJ_MIS_STA:部门目标任务书 DUTY_SUBJECT:OKR责任主体树
     */
    @ApiModelProperty("树类型编码")
    private String	 treeTypeCode;

    /**
     * 关联目标内容类型编码 TARGET:目标 TARGET_CATEGORY:目标分类 OBJECTIVE:指标
     */
    @ApiModelProperty("关联目标内容类型编码")
    private String	 targetCycleContentTypeCode;

    /**
     * 关联目标内容ID 
     */
    @ApiModelProperty("关联目标内容ID")
    private String	 targetCycleContentId;

    /**
     * 冗余目标ID 
     */
    @ApiModelProperty("冗余目标ID")
    private String	 targetId;

    /**
     * 冗余评价模板ID 
     */
    @ApiModelProperty("冗余评价模板ID")
    private String	 evaluationTemplateId;

    /**
     * 周期ID 
     */
    @ApiModelProperty("周期ID")
    private String	 cycleId;

    /**
     * 是否中期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否中期")
    private String	 isMetaphase;

    /**
     * 周期名称 
     */
    @ApiModelProperty("周期名称")
    private String	 cycleStandardName;

    /**
     * 周期开始时间 
     */
    @ApiModelProperty("周期开始时间")
    private Date	 cycleStartTime;

    /**
     * 周期结束时间 
     */
    @ApiModelProperty("周期结束时间")
    private Date	 cycleEndTime;

    /**
     * 周期类型名称 
     */
    @ApiModelProperty("周期类型名称")
    private String	 cycleTypeName;

    /**
     * 周期类型实例简称 
     */
    @ApiModelProperty("周期类型实例简称")
    private String	 cycleNumberShortName;

    /**
     * 目标周期简称 
     */
    @ApiModelProperty("目标周期简称")
    private String	 cyclelAlias;

    /**
     * 目标周期名称 
     */
    @ApiModelProperty("目标周期名称")
    private String	 targetCycleName;

    /**
     * 汇报通过时间 
     */
    @ApiModelProperty("汇报通过时间")
    private Date	 reportUpdateTime;

    /**
     * 目标达成情况 
     */
    @ApiModelProperty("目标达成情况")
    private String	 targetReached;

    /**
     * 目标周期任务进展状态 NOT_AT_THE:未开始 ONGOING:进行中 HAS_ENDED:已结束
     */
    @ApiModelProperty("目标周期任务进展状态")
    private String	 taskStatus;

    /**
     * 虚拟组织下部门ID 
     */
    @ApiModelProperty("牵头部门ID")
    private String	 deptId;

    /**
     * 组织内部门身份名称 
     */
    @ApiModelProperty("牵头部门身份名称")
    private String	 virtualOrgDeptStatus;

    /**
     * 部门简称 
     */
    @ApiModelProperty("牵头部门简称")
    private String	 deptShortName;

    /**
     * 个人账号 
     */
    @ApiModelProperty("责任人个人账号ID")
    private String	 userId;

    /**
     * 组内职务名称 
     */
    @ApiModelProperty("责任人职务名称")
    private String	 virtualOrganizationPosition;

    /**
     * 真实头像 
     */
    @ApiModelProperty("真实头像")
    private String	 userFace;

    /**
     * 真实姓名 
     */
    @ApiModelProperty("真实姓名")
    private String	 idCardName;

    /**
     * 用户昵称 
     */
    @ApiModelProperty("用户昵称")
    private String	 nickName;

    /**
     * 总时长 
     */
    @ApiModelProperty("总时长")
    private Long	 totalLength;

    /**
     * 延后或剩余天数 
     */
    @ApiModelProperty("延后或剩余天数")
    private Long	 delaySurplusLength;

    /**
     * 完成偏离时长 
     */
    @ApiModelProperty("完成偏离时长")
    private Long	 deviateLength;

    /**
     * 诊断值 
     */
    @ApiModelProperty("诊断值")
    private Double	 targetDiagnosticValue;

    /**
     * 实际值 
     */
    @ApiModelProperty("实际值")
    private Double	 actualValue;

    /**
     * 实际值单位 INDIVIDUAL:个 DOOR:门 TERM:项 PIECE:篇 YUAN:元 FEN:分 WAN_YUAN:万元 PERCENT:百分率
     */
    @ApiModelProperty("实际值单位")
    private String	 actualValueUnit;

    /**
     * 进度值 
     */
    @ApiModelProperty("进度值")
    private Double	 progressValue;

    /**
     * 进度值单位 INDIVIDUAL:个 DOOR:门 TERM:项 PIECE:篇 YUAN:元 FEN:分 WAN_YUAN:万元 PERCENT:百分率
     */
    @ApiModelProperty("进度值单位")
    private String	 progressValueUnit;

    /**
     * 进度较上次增降幅 
     */
    @ApiModelProperty("进度较上次增降幅")
    private Double	 progressFromLastRatio;

    /**
     * 进度较上次增降幅单位 INDIVIDUAL:个 DOOR:门 TERM:项 PIECE:篇 YUAN:元 FEN:分 WAN_YUAN:万元 PERCENT:百分率
     */
    @ApiModelProperty("进度较上次增降幅单位")
    private String	 progressFromLastRatioUnit;

    /**
     * 达成度 
     */
    @ApiModelProperty("达成度")
    private Double	 reach;

    /**
     * 达成度单位 INDIVIDUAL:个 DOOR:门 TERM:项 PIECE:篇 YUAN:元 FEN:分 WAN_YUAN:万元 PERCENT:百分率
     */
    @ApiModelProperty("达成度单位")
    private String	 reachUnit;

    /**
     * 达成度较上次增降福 
     */
    @ApiModelProperty("达成度较上次增降福")
    private Double	 actualFromLastTimeRatio;

    /**
     * 达成度较上次增降福单位 INDIVIDUAL:个 DOOR:门 TERM:项 PIECE:篇 YUAN:元 FEN:分 WAN_YUAN:万元 PERCENT:百分率
     */
    @ApiModelProperty("达成度较上次增降福单位")
    private String	 actualFromLastTimeRatioUnit;

    /**
     * 实时得分 
     */
    @ApiModelProperty("实时得分")
    private Double	 realTimeScore;

    /**
     * 实时得分单位 
     */
    @ApiModelProperty("实时得分单位")
    private String	 realTimeScoreUnit;

    /**
     * 权重分值 
     */
    @ApiModelProperty("权重分值")
    private Double	 weightScore;
/**
     * 虚拟组织成员就职记录ID 
     */
    @ApiModelProperty("责任人就职记录ID")
    private String	 virtualOrgInductionRecordId;
/**
     * 指标ID 
     */
    @ApiModelProperty("指标ID")
    private String	 objectiveId;

    /**
     * 指标标识 
     */
    @ApiModelProperty("指标标识")
    private String	 objectiveCode;

    /**
     * 指标名称 
     */
    @ApiModelProperty("指标名称")
    private String	 objectiveName;

    /**
     * 周期类型标识 FIVE_YEAR:五年 THREE_YEAR:三年 YEAR:年 HALF_YEAR:半年 QUARTER:季度 DOUBLE_MOONS:双月 MONTH:月 SCHOOL_YEAR:学年 IRREGULAR_CYCLE:不规则周期
     */
    @ApiModelProperty("周期类型标识")
    private String	 cycleTypeCode;

    /**
     * 指标简称 
     */
    @ApiModelProperty("指标简称")
    private String	 objectiveShortName;

    /**
     * 责任主体ID 
     */
    @ApiModelProperty("责任主体ID ")
    private String	 dutyBodyId;

    /**
     * 责任主体名称 
     */
    @ApiModelProperty("责任主体名称 ")
    private String	 dutyBodyName;

    /**
     * 权重 
     */
    @ApiModelProperty("权重")
    private Double	 weightValue;
/**
     * 冗余指标业务类型 NUMBER_GROWTH:数量增长型 NUMBER_DECLINE:数量降幅型 PERCENTAGE_GROWTH:百分比增长型 PERCENTAGE_DECLINE:百分比降幅型 PROGRESS:进度型 RATIO_GROWTH:比率增长型 RATIO_DECLINE:比率降幅型 SUBJECTIVE_QUALITATIVE:主观定性
     */
    @ApiModelProperty("冗余指标业务类型")
    private String	 targetValueType;

    /**
     * 冗余是否左侧比例型 TRUE:是 FALSE:否
     */
    @ApiModelProperty("冗余是否左侧比例型")
    private String	 isLeft;
/**
     * 实时得分等级 
     */
    @ApiModelProperty("实时得分等级")
    private String	 realTimeScoreLevel;
/**
     * 周期模式类型编码 FATHER_SON_CYCLE:父子周期 SINGLE_CYCLE:单周期 IRREGULAR_CYCLE:不规则周期
     */
    @ApiModelProperty("周期模式类型编码")
    private String	 periodicModeTypeCode;
/**
     * 较上次目标变化值
     */
    @ApiModelProperty("较上次目标变化值")
    private Double	 changeFromLastTarget;

    /**
     * 较上次目标变化值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("较上次目标变化值单位")
    private String	 changeFromLastTargetUnit;

    /**
     * 较上次目标增降幅
     */
    @ApiModelProperty("较上次目标增降幅")
    private Double	 fromLastTargetLiftRatio;

    /**
     * 较上次目标增降幅单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("较上次目标增降幅单位")
    private String	 fromLastTargetLiftRatioUnit;

    /**
     * 进度较上次变化值
     */
    @ApiModelProperty("进度较上次变化值")
    private Double	 fromLastProgressValue;

    /**
     * 进度较上次变化值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("进度较上次变化值单位")
    private String	 fromLastProgressValueUnit;

    /**
     * 达成度较上次变化值
     */
    @ApiModelProperty("达成度较上次变化值")
    private Double	 fromLastReach;

    /**
     * 达成度较上次变化值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("达成度较上次变化值单位")
    private String	 fromLastReachUnit;

    /**
     * 汇报得分（数值）
     */
    @ApiModelProperty("汇报得分（数值）")
    private Double	 reportScoreValue;

    /**
     * 汇报得分单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("汇报得分单位")
    private String	 reportScoreUnit;

    /**
     * 实际得分（数值）
     */
    @ApiModelProperty("实际得分（数值）")
    private Double	 actualScoreValue;

    /**
     * 实际得分单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("实际得分单位")
    private String	 actualScoreUnit;
/**
     * 是否过程周期阶段 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否过程周期阶段")
    private String	 isProcessCycleStage;
/**
     * 汇报得分（文本） 
     */
    @ApiModelProperty("汇报得分（文本）")
    private String	 reportScore;

    /**
     * 实际得分（文本） 
     */
    @ApiModelProperty("实际得分（文本）")
    private String	 actualScore;
/**
     * 展示目标值
     */
    @ApiModelProperty("展示目标值")
    private Double	 showTargetValue;

    /**
     * 冗余单位
     */
    @ApiModelProperty("目标值单位")
    private String	 unit;
/**
     * 目标实际开始时间
     */
    @ApiModelProperty("目标实际开始时间")
    private Date	 targetActualStartTime;

    /**
     * 目标实际结束时间
     */
    @ApiModelProperty("目标实际结束时间")
    private Date	 targetActualEndtTime;
/**
     * 相对上级排序 
     */
    @ApiModelProperty("相对上级排序")
    private Long	 relativeOrderNumber;

    /**
     * 部门排序 
     */
    @ApiModelProperty("部门排序")
    private Long	 dutyBodyOrderNum;

    /**
     * 个人排序 
     */
    @ApiModelProperty("个人排序")
    private Long	 personalOrderNumber;

    /**
     * 权重排序 
     */
    @ApiModelProperty("权重排序")
    private Long	 weightOrderNumber;

    /**
     * 创建时间 
     */
    @ApiModelProperty("创建时间")
    private Date	 createTime;

    /**
     * 操作时间 
     */
    @ApiModelProperty("操作时间")
    private Date	 operateTime;
@Override
  public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      if (!super.equals(o)) return false;
      BffIndexViewPointDto that = (BffIndexViewPointDto) o;
      return  evaObjTargetCycleId == that.evaObjTargetCycleId&&evaObjEntityId == that.evaObjEntityId&&evaObjTableTypeCode == that.evaObjTableTypeCode&&evaObjTypeCode == that.evaObjTypeCode&&treeTypeCode == that.treeTypeCode&&targetCycleContentTypeCode == that.targetCycleContentTypeCode&&targetCycleContentId == that.targetCycleContentId&&targetId == that.targetId&&evaluationTemplateId == that.evaluationTemplateId&&cycleId == that.cycleId&&isMetaphase == that.isMetaphase&&cycleStandardName == that.cycleStandardName&&cycleStartTime == that.cycleStartTime&&cycleEndTime == that.cycleEndTime&&cycleTypeName == that.cycleTypeName&&cycleNumberShortName == that.cycleNumberShortName&&cyclelAlias == that.cyclelAlias&&targetCycleName == that.targetCycleName&&reportUpdateTime == that.reportUpdateTime&&targetReached == that.targetReached&&taskStatus == that.taskStatus&&deptId == that.deptId&&virtualOrgDeptStatus == that.virtualOrgDeptStatus&&deptShortName == that.deptShortName&&userId == that.userId&&virtualOrganizationPosition == that.virtualOrganizationPosition&&userFace == that.userFace&&idCardName == that.idCardName&&nickName == that.nickName&&totalLength == that.totalLength&&delaySurplusLength == that.delaySurplusLength&&deviateLength == that.deviateLength&&targetDiagnosticValue == that.targetDiagnosticValue&&actualValue == that.actualValue&&actualValueUnit == that.actualValueUnit&&progressValue == that.progressValue&&progressValueUnit == that.progressValueUnit&&progressFromLastRatio == that.progressFromLastRatio&&progressFromLastRatioUnit == that.progressFromLastRatioUnit&&reach == that.reach&&reachUnit == that.reachUnit&&actualFromLastTimeRatio == that.actualFromLastTimeRatio&&actualFromLastTimeRatioUnit == that.actualFromLastTimeRatioUnit&&realTimeScore == that.realTimeScore&&realTimeScoreUnit == that.realTimeScoreUnit&&weightScore == that.weightScore&&virtualOrgInductionRecordId == that.virtualOrgInductionRecordId&&objectiveId == that.objectiveId&&objectiveCode == that.objectiveCode&&objectiveName == that.objectiveName&&cycleTypeCode == that.cycleTypeCode&&objectiveShortName == that.objectiveShortName&&dutyBodyId == that.dutyBodyId&&dutyBodyName == that.dutyBodyName&&weightValue == that.weightValue&&targetValueType == that.targetValueType&&isLeft == that.isLeft&&realTimeScoreLevel == that.realTimeScoreLevel&&periodicModeTypeCode == that.periodicModeTypeCode&&changeFromLastTarget == that.changeFromLastTarget&&changeFromLastTargetUnit == that.changeFromLastTargetUnit&&fromLastTargetLiftRatio == that.fromLastTargetLiftRatio&&fromLastTargetLiftRatioUnit == that.fromLastTargetLiftRatioUnit&&fromLastProgressValue == that.fromLastProgressValue&&fromLastProgressValueUnit == that.fromLastProgressValueUnit&&fromLastReach == that.fromLastReach&&fromLastReachUnit == that.fromLastReachUnit&&reportScoreValue == that.reportScoreValue&&reportScoreUnit == that.reportScoreUnit&&actualScoreValue == that.actualScoreValue&&actualScoreUnit == that.actualScoreUnit&&isProcessCycleStage == that.isProcessCycleStage&&reportScore == that.reportScore&&actualScore == that.actualScore&&showTargetValue == that.showTargetValue&&unit == that.unit&&targetActualStartTime == that.targetActualStartTime&&targetActualEndtTime == that.targetActualEndtTime&&relativeOrderNumber == that.relativeOrderNumber&&dutyBodyOrderNum == that.dutyBodyOrderNum&&personalOrderNumber == that.personalOrderNumber&&weightOrderNumber == that.weightOrderNumber&&createTime == that.createTime&&operateTime == that.operateTime;
    }
@Override
  public int hashCode() {
      return Objects.hash(super.hashCode(), evaObjTargetCycleId,evaObjEntityId,evaObjTableTypeCode,evaObjTypeCode,treeTypeCode,targetCycleContentTypeCode,targetCycleContentId,targetId,evaluationTemplateId,cycleId,isMetaphase,cycleStandardName,cycleStartTime,cycleEndTime,cycleTypeName,cycleNumberShortName,cyclelAlias,targetCycleName,reportUpdateTime,targetReached,taskStatus,deptId,virtualOrgDeptStatus,deptShortName,userId,virtualOrganizationPosition,userFace,idCardName,nickName,totalLength,delaySurplusLength,deviateLength,targetDiagnosticValue,actualValue,actualValueUnit,progressValue,progressValueUnit,progressFromLastRatio,progressFromLastRatioUnit,reach,reachUnit,actualFromLastTimeRatio,actualFromLastTimeRatioUnit,realTimeScore,realTimeScoreUnit,weightScore,virtualOrgInductionRecordId,objectiveId,objectiveCode,objectiveName,cycleTypeCode,objectiveShortName,dutyBodyId,dutyBodyName,weightValue,targetValueType,isLeft,realTimeScoreLevel,periodicModeTypeCode,changeFromLastTarget,changeFromLastTargetUnit,fromLastTargetLiftRatio,fromLastTargetLiftRatioUnit,fromLastProgressValue,fromLastProgressValueUnit,fromLastReach,fromLastReachUnit,reportScoreValue,reportScoreUnit,actualScoreValue,actualScoreUnit,isProcessCycleStage,reportScore,actualScore,showTargetValue,unit,targetActualStartTime,targetActualEndtTime,relativeOrderNumber,dutyBodyOrderNum,personalOrderNumber,weightOrderNumber,createTime,operateTime);
    }
    
      

    }
   